|
OPEN GL ES |
[1] |
|
등록일:2019-12-10 10:49:21 (0%) 작성자: 제목:안드로이드 – OpenGL ES에서 숨겨진 선을 제거한 와이어 프레임 메시를 그리려면 어떻게해야합니까? |
|
그려야하는 입방체 :
위의 큐브는 glPolygonMode (GL_FRONT_AND_BACK, GL_LINE) 함수를 사용하여 OpenGL에서 쉽게 생성 할 수 있지만 OpenGL ES에는 사용하려는 함수가 포함되어 있지 않습니다. 한마디로 다음과 같이 큐브를 그리지 않습니다.
나는 도움을 줄 수있는 사람들에게 감사하고 싶다.
============== 최소한 그림 업데이트 ========================================================================================= =====
뒤쪽 가장자리는 앞쪽 가장자리보다 약간 더 얇습니다. 이 문제를 해결할 수있는 해결책이 있습니까?
현재 코드 :
GLES20.glEnable(GLES20.GL_DEPTH_TEST);
GLES20.glDisable(GLES20.GL_POLYGON_OFFSET_FILL);
// Draw edge
GLES20.glDrawElements(GLES20.GL_LINES, lineIndices.length,
GLES20.GL_UNSIGNED_SHORT, lineIndexBuffer);
GLES20.glEnable(GLES20.GL_POLYGON_OFFSET_FILL);
GLES20.glPolygonOffset(1.0f, 1.0f);
// Apply background color and draw faces
GLES20.glUniform4fv(mColorHandle, 1, faceColor, 0);
GLES20.glDrawElements(GLES20.GL_TRIANGLES, triangleIndices.length,
GLES20.GL_UNSIGNED_SHORT, triangleIndexBuffer);
우수 답변
다음은 표준 트릭입니다 (깊이 버퍼를 사용한다고 가정).
> 메쉬 가장자리 (선) 그리기 > 메쉬 다각형을 배경색으로 채 웁니다 (숨겨진 선을 감추기 위해).
메쉬 가장자리와 메쉬면이 같은 z 값을 가지기 때문에 z- 파이팅 문제를 해결해야합니다. 가장 간단한 방법은 폴리곤 오프셋을 사용하여 가장자리가 폴리곤면의 “위”에서 약간 “위로 이동”합니다.
gl.disable(gl.POLYGON_OFFSET_FILL)
/* draw polygon edges */
gl.enable(gl.POLYGON_OFFSET_FILL);
gl.polygonOffset(1.0, 1.0);
/* fill polygons in background color */
다음은 z-fighting 문제를 보여주는 와이어 프레임 와인 잔입니다.
여기에서 폴리곤 오프셋을 사용하여 z-fighting 문제를 해결했습니다. |
[본문링크] 안드로이드 – OpenGL ES에서 숨겨진 선을 제거한 와이어 프레임 메시를 그리려면 어떻게해야합니까?
|
[1]
|
|
|
|
|
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=34901 |
|
|
|
|
|
|
|
|
|
Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.
|
|
|